INTRO
Section: Protocol Families (4F)
Updated: August 30, 1993
Index
Return to Main Contents
NAME
intro - introduction to
FlexFAX
operation and file formats
DESCRIPTION
FlexFAX
is a system for sending and receiving facsimile.
It supports queued transmission and asynchronous
reception of facsimile.
Ancillary programs are invoked by
the system for flexibility
and configurability.
FlexFAX
includes client and server programs to
support remote submission of jobs for transmission,
remote removal of queued jobs, and to remotely
query the status of jobs queued for transmission.
This document describes the organization of the
filesystem spooling area in which
FlexFAX
server and server-related processes operate, and
introduces the various files that reside in the spooling area.
OVERVIEW
The spooling area is typically located under the
directory
${SPOOL}.
Ancillary commands used by the servers
faxd(1M)
and
faxd.recv(1M),
and by administration tools are located in the
bin
subdirectory.
Configuration, access control, and accounting
information are maintained in the
etc
subdirectory.
Outgoing facsimile jobs are described by files
in the
sendq
subdirectory, while received facsimile are deposited in the
recvq
subdirectory.
The
docq
and
temp
subdirectories are also used in the transmission of facsimile.
The
info
subdirectory contains files that describe the capabilities
of facsimile machines that
FlexFAX
has called-
this information is used in preparing documents for transmission.
The
cinfo
subdirectory contains files with per-machine
control parameters to use when sending facsimile.
The
status
subdirectory contains files that server processes write their
current status to.
The
log
subdirectory contains logging information about send and
receive sessions.
FlexFAX
supports multiple facsimile modems on a single host.
Each modem has a server process associated with it
that handles transmission and asynchronous reception.
Server processes operate independently of each other
and utilize file-level locking to avoid conflicts when
handling jobs submitted for transmission.
There are currently no per-modem priority or access control
mechanisms - all modems are treated equally.
Server processes accept commands through
FIFO
special device files; see
mknod(2)
or
mkfifo(2).
All server processes listen for commands
written to the file named
FIFO,
as well as a per-device file named
FIFO.devid
(where
devid
is an identifier derived from the name of the device
special file to which the modem is connected; e.g.
ttym2
for
/dev/ttym2,
term_10
for
/dev/term/10.)
To send a command to any server process, one writes to
FIFO.
This is useful, for example, for submitting a job for
transmission.
To send a command to a specific server process, the
FIFO.devid
file is used.
SENDING
Each outgoing facsimile job has a job description file
that is located in the
sendq
subdirectory.
This file contains all the information necessary to
manage the transmission; c.f.
sendq(4F).
The actual documents that are to be sent are located
in the
docq
subdirectory.
FlexFAX
accepts PostScript and
TIFF
Class F documents for transmission.
PostScript documents are automatically converted to
TIFF
documents prior to transmission according to the capabilities
of the remote facsimile machine: maximum page width
and length, ability to handle 2D encoded data, ability
to handle high resolution (7 line/mm) data.
This remote machine capability information is stored
in files in the
info
subdirectory.
If a machine has not been called before,
FlexFAX
assumes the remote machine has the requested capabilities.
While a job is being processed by a server process,
its job description file is locked for exclusive
use with
flock(2).
This insures that multiple server processes do not
simultaneously attempt to process a job.
The
faxstat(1)
program uses this information to tell if a job is being processed.
If the
SessionTracing
parameter in a server's configuration file is non-zero,
then tracing information for an outgoing job will be logged
in a file in the
log
subdirectory.
Each destination machine has a separate log file named
by its canonical phone number.
The remote job submission facility includes per-host
access control.
The file
etc/hosts
must be present and list those hosts that are
permitted to queue jobs for transmission.
Note that it is necessary to include the ``local host''
definition (usually 127.0.0.1) if local submission
is to be permitted.
RECEIVING
Server processes can be configured to answer incoming
phone calls and automatically receive facsimile.
Received documents are placed in the
recvq
subdirectory as
TIFF
Class F files.
The server can be configured to make these files publicly
accessible, or they can be made private in which case
an administrator must manage their delivery.
When a facsimile is received, the server process invokes the
bin/faxrcvd
command.
The default command is a shell script that sends a mail
message to a well known user, the
FaxMaster,
but one might also, for example, automatically spool the
document for printing.
FlexFAX
supports a simple form of access control for receiving facsimile.
The server may be configured to check the
Transmission Subscriber Identifiers (TSI)
of the remote fax machine against a data base, typically
etc/tsi.
Only if the
TSI
is present in the data base, is the remote machine permitted
to transmit a document.
This mechanism can be used, for example, to guard against
junk fax.
POLLING
FlexFAX
supports the polled retrieval of facsimile documents.
Documents that are received because of a poll request are
stored in the
recvq
subdirectory and also delivered directly to the requester using the
bin/pollrcvd
command.
This script typically encodes the binary facsimile data and
returns it to the user via electronic mail.
DATA CALLS
Most fax modems also support non-facsimile communication.
FlexFAX
uses the locking mechanism employed by
uucp(1C),
cu(1C),
and
slip(1M).
As a result, it will transparently ``get out of the way''
when an application wants to use the modem for an outgoing
call.
In addition,
FlexFAX
attempts to deduce whether an incoming
call is for facsimile or data use.
If called by a data modem and the
GettyArgs
parameter is specified in the configuration file (or on the
command line when the fax server process is started up),
FlexFAX
will invoke the
getty(1M)
program so that caller may login to the system.
STATUS
FlexFAX
maintains status information in several forms.
General status information for each server process is maintained
in the
status
subdirectory and returned to users by the
faxstat(1)
program.
The
syslog(3)
facility is used by all server processed
for logging status and error diagnostics.
The server processes may also be configured to log various
kinds of debugging and tracing information; c.f.
config(4F).
Any problems encountered when transmitting a facsimile
are returned to the user by electronic mail.
A user may also request notification by mail when a
job is requeued; for example, because a call failed.
Notification by electronic mail is implemented by the
bin/notify
command script.
The
faxstat
utility provides (remote) status of jobs queued
for transmission, jobs received, and the general
status of server processes.
The file
etc/xferlog
contains status information about all facsimile sent and
received on a machine.
This file is in a simple
ASCII
format that is easy to manipulate with programs such as
awk(1),
to generate accounting information.
See
xferlog(4F)
for information about the format.
See
xferstats(1M)
and
recvstats(1M)
for example scripts that print summarized accounting information.
NOTES
There is no support for priority queueing.
Automatic routing of incoming facsimile is desirable.
FILES
FIFO fifo for job submission
FIFO.<devid> fifo for accessing a specific server
bin/faxinfo command that prints information about received facsimile
bin/faxquit command to force server to quit
bin/faxrcvd faxd command for handling newly received facsimile
bin/notify faxd command for doing user notification
bin/pollrcvd faxd command for delivering facsimile received by poll
bin/ps2fax faxd command for converting PostScript to TIFF
docq/doc* documents queued for transmission
etc/config.<devid> configuration data for <devid>
etc/hosts hosts that may submit jobs for transmission
etc/tsi fax machines that we'll accept transmissions from
etc/xferlog log of facsimile sent and received
info/* data base of remote fax machine capabilities
cinfo/* data base of remote fax machine control parameters
log/* session logging records
recvq/fax* received facsimile
sendq/q* descriptions of jobs queued for transmission
status/* server status information
tmp/* temporary files created when submitting a job
SEE ALSO
faxd(1M),
faxd.recv(1M),
faxrcvd(1M),
notify(1M),
pollrcvd(1M),
recvstats(1M),
xferstats(1M),
cinfo(4F),
config(4F),
dialrules(4F),
hosts(4F),
info(4F),
log(4F),
tsi(4F),
recvq(4F),
sendq(4F),
status(4F),
xferlog(4F),
Index
- NAME
-
- DESCRIPTION
-
- OVERVIEW
-
- SENDING
-
- RECEIVING
-
- POLLING
-
- DATA CALLS
-
- STATUS
-
- NOTES
-
- FILES
-
- SEE ALSO
-
This document was created by
man2html,
using the manual pages.
Time: 10:15:15 GMT, January 04, 2023